Personal computer systems in general and IBM personal computers in particular have attained widespread use for providing computer power to many segments of today's modern society. Personal computer systems can usually be defined as a desk top, floor standing, or portable microcomputer that consists of a system unit having a single system processor and associated volatile and non-volatile memory, a display monitor, a keyboard, one or more diskette drives, a fixed disk storage, and an optional printer. One of the distinguishing characteristics of these systems is the use of a motherboard or system planar to electrically connect these components together. These systems are designed primarily to give independent computing power to a single user and are inexpensively priced for purchase by individuals or small businesses. Examples of such personal computer systems are IBM's PERSONAL COMPUTER AT and IBM's PERSONAL SYSTEM/2 Models 25, 30, L40SX, 50, 55, 65, 70, 80, 90 and 95.
These systems can be classified into two general families. The first family, usually referred to as Family I Models, use a bus architecture exemplified by the IBM PERSONAL COMPUTER AT and other "IBM compatible" machines. The second family, referred to as Family II Models, use IBM's MICRO CHANNEL bus architecture exemplified by IBM's PERSONAL SYSTEM/2 Models 50 through 95. The Family I models typically have used the popular INTEL 8088 or 8086 microprocessor as the system processor. These processors have the ability to address one megabyte of memory. The Family II models typically use the high speed INTEL 80286, 80386, and 80486 microprocessors which can operate in a real mode to emulate the slower speed INTEL 8086 microprocessor or a protected mode which extends the addressing range from 1 megabyte to 4 Gigabytes for some models. In essence, the real mode feature of the 80286, 80386, and 80486 processors provide hardware compatibility with software written for the 8086 and 8088 microprocessors.
Data being processed in high performance personal computers such as some of those mentioned above is conventionally written to, stored in and read from dynamic random access memory (DRAM) using conventional data storage technology. While such technology has been quite successful, persons skilled in the arts of computer design and use have known for some time that all DRAM has inherent soft errors. That is, data written to, stored in or read from DRAM will contain errors over time. The degree to which such error interfere with personal computer operation will vary with the particular application for which the computer is being used. An error rate acceptable for a personal computer used only for word processing may be found completely unacceptable for a personal computer used as a file server supporting financial record keeping and analysis applications necessary to the operation of an ongoing business venture.
Recognizing the inherency of DRAM data or soft errors, most personal computer design have adopted some known technology for guarding against adverse effects of such errors. The most common such technology is known as parity checking or parity. With parity checking, each predetermined number of bits of data used for transferring or storing information is accompanied by a parity bit used to validate the accuracy of the data bits. One typical arrangement uses one parity bit for eight data bits. Typically, such a parity design will detect an error of a single bit in a byte (eight bits). An alternate technology is known as error correcting code or ECC. ECC (depending upon its implementation) can detect errors of one or more bits in a word and can correct errors of one bit in a word. ECC typically adds to the data bits defining a word from four to seven bits used in the error detection and correction routines. ECC is, as a general matter, known and the present invention relies upon such known technology.
Prior to the present invention, personal computer designers and users essentially have been faced with the parity or ECC choice at a very early level in determining personal computer system capabilities. In particular, a user concerned with achieving high levels of reliability (in the sense of minimizing the impact of DRAM soft errors) would be compelled to select a machine designed to have ECC capability, even if many applications to be supported by that machine would be satisfactorily served by parity memory.
Further, there has been a trend over recent time toward packaging of memory elements in more readily handled forms. With increasing density of memory elements, in terms of quantities of data words stored, memory elements have moved from single chips to single inline memory modules (SIMM) and toward what has become known as DRAM cards. A DRAM card is a packaging of memory elements mounted on a substrate within a protective sleeve or enclosure and coupled to the remainder of a computer system by an appropriate pin and socket connection. In one form, such a DRAM card may have dimensions of approximately fifty four millimeters wide by eighty five millimeters long by three millimeters thick. It is contemplated that such dimensions may vary and will be reduced as technological advances permit. One advantage of DRAM cards is that such memory elements are readily removed and replaced from computer systems and may be handled by users almost as easily as the well known floppy disks with which all personal computer users are familiar. However, even with such development of the applicable technology, parity and ECC memory elements have remained non-interchangeable. That is, a user of a machine first configured for parity memory elements and wishing to change to ECC memory elements would be required to remove and replace all memory elements to effect the desired conversion.